﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;


namespace UI.Desktop
{
    public partial class frmAltaTurno : Form
    {
        public frmAltaTurno()
        {
            InitializeComponent();
            txtFechaAct.Visible = false;
        }

        private void Calendario_DateChanged(object sender, DateRangeEventArgs e)
        {
            DateTimePicker fecSelec = new DateTimePicker();
        }

        private void btnCerrar_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void cbPaciente_Click(object sender, EventArgs e)
        {
            Business.Entities.Paciente pac = new Business.Entities.Paciente();
            DataSet dsPac = new DataSet();
            dsPac = pac.ObtenerListaPacientes();
            ObtenerPacientes(dsPac);

            
        }
        private void ObtenerPacientes(DataSet dsPac)
        {
            cbPaciente.Text = "Seleccione el paciente";
            cbPaciente.DataSource = dsPac.Tables["Paciente"];
            cbPaciente.DisplayMember = dsPac.Tables["Paciente"].Columns[1].Caption.ToString();
        }

        private void cbProfesional_Click(object sender, EventArgs e)
        {
            Business.Entities.Profesional prof = new Business.Entities.Profesional();
            DataSet dsProf = new DataSet();
            dsProf = prof.ObtenerListaProfesional();
            ObtenerProfesional(dsProf);
            
        }
        private void ObtenerProfesional(DataSet dsProf)
        {
            cbProfesional.Text = "Seleccione el profesional";
            cbProfesional.DataSource = dsProf.Tables["Profesional"];
            string Id_profesional = dsProf.Tables["Profesional"].Columns[0].Caption.ToString();
            string concatenado = dsProf.Tables["Profesional"].Columns[0].Caption.ToString();
            
            

            cbProfesional.DisplayMember = concatenado;
         


         }




        private void cbHorario_Click(object sender, EventArgs e)
        {
            Business.Entities.Profesional prof=new Business.Entities.Profesional();
            Business.Entities.Horario Hora = new Business.Entities.Horario();
            DataSet dsHora = new DataSet();
            DataSet dsProf = new DataSet();
            string Concatenado = cbProfesional.Text;
            string fecha = txtFechaAct.Text; 
            
           
            
            dsProf = prof.ObtenerProfesional(Concatenado);
            

           
            dsHora = Hora.ObtenerListaHorarios (dsProf,fecha);
            
            ObtenerHorarios(dsHora);


        }

        private void ObtenerHorarios(DataSet dsHora)
        {
            try
            {
                
                cbHorario.DataSource = dsHora.Tables["Horario"];



                cbHorario.DisplayMember = dsHora.Tables["Horario"].Columns[1].Caption.ToString();
            }


            catch (Exception ex)
            {
                MessageBox.Show("No hay horarios disponibles", "Informacion", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }

        
        
        }

        private void Calendario_DateSelected(object sender, DateRangeEventArgs e)
        {
            txtFechaAct.Text= Calendario.SelectionRange.Start.ToShortDateString();
            
                 
        }

        private void Calendario_DateChanged_1(object sender, DateRangeEventArgs e)
        {
            string fecha = Calendario.SelectionEnd.ToShortDateString();
        }

        private void btnGuardar_Click(object sender, EventArgs e)
        {
            if (cbHorario.Text == "" || cbPaciente.Text == "" || cbProfesional.Text == "" || txtFechaAct.Text == "")
            {
                MessageBox.Show("Campos invalidos, no puede haber ninguno vacio", "Advertencia", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }



            else
            {   Business.Entities.Profesional prof= new Business.Entities.Profesional();
                string Concatenado = cbProfesional.Text;
                DataSet dsProf = new DataSet();
                dsProf = prof.ObtenerProfesional(Concatenado);
                Business.Entities.Turno CadTurno = new Business.Entities.Turno();
                CadTurno.Profesional = dsProf.Tables["Profesional"].Rows[0][0].ToString();
                Business.Entities.Paciente pac = new Business.Entities.Paciente();
                DataSet dsPac = new DataSet();
                string concatenado = cbPaciente.Text;
                dsPac = pac.ObtenerListaPacientesConNombreApellido(concatenado);
                CadTurno.Paciente = dsPac.Tables["Paciente"].Rows[0][0].ToString();
                Business.Entities.Horario Hora = new Business.Entities.Horario();
                DataSet dsHora = new DataSet();
                string fecha = cbHorario.Text;
                dsHora = Hora.ObtenerListaHorariosConHora(fecha);
                CadTurno.Horario = dsHora.Tables["Horario"].Rows[0][0].ToString();

                
                CadTurno.Fecha = txtFechaAct.Text.ToString();

                MessageBox.Show("El Turno fue registrado con exito", "Informacion", MessageBoxButtons.OK, MessageBoxIcon.Information);
                this.Close();

                if (btnGuardar.Text.ToString() == "Guardar")
                {
                    CadTurno.AnyadirTurno();
                }
                else
                    // enProfesional.EditarPaciente();

                    this.Close();

            }

        }

      




    }
}
